package com.boxuegu.myapplication;

import android.content.Intent;
import android.content.SharedPreferences;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.boxuegu.myapplication.utils.MD5Utils;
import com.boxuegu.myapplication.utils.SPreadOrWrite;
import com.boxuegu.myapplication.view.TitleBar;


public class LoginActivity extends AppCompatActivity {
    private TextView tv_register,tv_find_psw;
    private EditText et_user_name,et_psw;
    private Button btn_login;

    //自己登录界面主动跳转到注册界面，注册界面处理完事情后，回跳到登录界面，自动执行下面方法

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if(data!=null){
            String userName=data.getStringExtra("userName");
            et_user_name.setText(userName);
            et_psw.setText(data.getStringExtra("psw"));
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        init();

        tv_find_psw.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //找回密码界面还没有，暂时不跳转
            }
        });
        //登录
        btn_login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //检查是否为空
                //检查密码是否正确
                String userName,psw,pswAgain;
                userName=et_user_name.getText().toString();
                psw=et_psw.getText().toString();
                if(userName.equals("")){
                    //用户名为空
                    Toast.makeText(LoginActivity.this,"你输入的用户名为空",Toast.LENGTH_LONG).show();
                    return;
                }
                //检查用户名是否存在,先读取SP文件中的用户名
                SharedPreferences sharedPreferences=getSharedPreferences("loginInfo",MODE_PRIVATE);
                String spPsw=sharedPreferences.getString(userName,"");
                //三种情况：不存在用户名，返回空对象;存在用户名，但是没有密码，返回"";存在用户名存在密码，返回密码
                //我们认为只有用户名和密码都存在才是用户名已经注册，即使数据库已经有用户名没有密码，则新注册覆盖
                if(spPsw==null||spPsw.length()==0){//用户名不存在
                    Toast.makeText(LoginActivity.this,"你输入的用户名不正确",Toast.LENGTH_LONG).show();
                    return;
                }
                if(psw.equals("")){
                    //密码为空
                    Toast.makeText(LoginActivity.this,"你输入的密码为空",Toast.LENGTH_LONG).show();
                    return;
                }
                String md5psw= MD5Utils.md5(psw);
                if(!md5psw.equals(spPsw)){
                    Toast.makeText(LoginActivity.this,"你输入的密码不正确",Toast.LENGTH_LONG).show();
                    return;
                }
                //登录成功：提示、保存登录状态、回跳p70:79
                Toast.makeText(LoginActivity.this,"登录成功",Toast.LENGTH_LONG).show();
                SPreadOrWrite.saveLoginStatus(LoginActivity.this,userName);

                //回跳到主界面,和MyInfoView:68行相呼应，不是返回第68行去执行，而是自动执行MyInfoView对应的Activity的一个方法onActivityResult
                //MyInfoView对应的Activity的这个方法onActivityResult已经定义好了，我们只需要重写
                Intent data=new Intent();//意图三个作用：表达从哪里起跳，跳到哪里去，携带数据
                data.putExtra("userName",userName);
                setResult(9999,data);
                LoginActivity.this.finish();

            }
        });

        //立即注册
        tv_register.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //主动跳到注册界面p69:50
                Intent intent=new Intent(LoginActivity.this,RegisterActivity.class);
                startActivityForResult(intent,888);
            }
        });
    }

    private void init(){
        tv_register=findViewById(R.id.tv_register);
        tv_find_psw=findViewById(R.id.tv_find_psw);
        et_user_name=findViewById(R.id.et_user_name);
        et_psw=findViewById(R.id.et_psw);
        btn_login=findViewById(R.id.btn_login);
        LinearLayout main_title_bar=findViewById(R.id.main_title_bar);
        TitleBar titleBar=new TitleBar(this,"登录");
        main_title_bar.addView(titleBar.getView());
    }
}